static const uint32_t in_com1[256] = {
    0xbed9b88c, 0xbe85457e, 0xbeea7eca, 0x3e17ff06,
    0xbe13a549, 0xbebd9ab7, 0x3d4621a0, 0x3e304cf9,
    0x3ecf6e8a, 0x3cfb9c49, 0x3c20b0c2, 0x3d9e9753,
    0x3eb804d3, 0x3ec83ed3, 0x3efd6b24, 0xbecb497f,
    0x3f5e5006, 0x3edc5354, 0xbe932caf, 0x3e6f1bca,
    0xbf3cdc98, 0xbef5150a, 0xbcce44bf, 0x3c8bbfeb,
    0x3e6e3187, 0xbf5bf5b0, 0x3ed8e7ba, 0x3f029f23,
    0x3e0999d9, 0x3d7d7bec, 0x3e43a8ac, 0xbe63b80e,
    0x3f0c89d7, 0x3f26caf1, 0x3cc61078, 0x3e9d7a43,
    0xbf11d9bd, 0xbe6b0910, 0xbf3c1a71, 0x3f5ca444,
    0x3ea58469, 0xbf1c56e1, 0xbe4cf9e1, 0xbf3b7337,
    0xbf1c622f, 0xbee69b8f, 0xbe5374ec, 0x3e84dcc3,
    0x3e2a11b2, 0xbe024acf, 0x3d330647, 0x3e0e15ae,
    0x3e480aae, 0xbe009dc2, 0x3e334c22, 0xbf68c25a,
    0xbe875c17, 0x3ed3b7b6, 0x3c548a11, 0xbf748f6a,
    0xbe2fd359, 0xbeb79e06, 0xbe9d2b22, 0xbd041f20,
    0xbea20579, 0xbe0e2a95, 0x3ec5ceab, 0x3e6c7b5a,
    0xbd31f74a, 0x3e89c4be, 0x3e7ad9a8, 0xbeb01cf0,
    0xbd9edaf0, 0xbdd9ba24, 0x3eab6ed8, 0xbe304596,
    0xbe6b0bad, 0x3e95ce13, 0xbe1c9356, 0x3f065558,
    0x3d946da2, 0xbe9651bb, 0xbf3915ce, 0xbef6870f,
    0xbea173fa, 0x3f3b112f, 0x3e77acc4, 0xbe3eaadd,
    0xbee694b7, 0x3e17c8c6, 0x3cce9b87, 0x3f457b95,
    0xbe8e81e6, 0xbef9b5b7, 0x3e8303c4, 0xbed0e513,
    0x3e3a01e8, 0x3e835bd4, 0xbe885c96, 0xbe4f18fd,
    0x3f09bfc9, 0xbe97f387, 0xbdef8fe3, 0x3e3fc6ce,
    0x3e15fd87, 0x3da67ba3, 0xbe16b70b, 0x3f04d196,
    0xbc98718e, 0x3e7109c9, 0x3e92cf6d, 0x3bec2f09,
    0x3d9ab0f9, 0x3ee34c27, 0xbf028a75, 0xbec89316,
    0x3ddf7863, 0x3e6af544, 0x3f211d0d, 0xbd6f5644,
    0x3ec2e505, 0x3f25c1a7, 0x3ed1b8fb, 0xba995722,
    0x3e977e94, 0x3e1ff3c3, 0xbe8004d9, 0xbedbd344,
    0x3e8255d6, 0x3f0d820c, 0x3ed990f7, 0x3e3635bd,
    0x3ebb3eaf, 0xbdeb1f92, 0xbe0e30dc, 0xbe79480d,
    0xbeafbf87, 0x3e46fdbd, 0xbe940fc2, 0x3e485488,
    0xbef72346, 0x3e2a25f2, 0x3d9e174c, 0xbe7884fa,
    0xbdadfbe0, 0x3ddc52a5, 0xbe7fc774, 0x3ed9465c,
    0xbe242d8e, 0xbe9a872c, 0x3e756c14, 0x3d0dd074,
    0xbe850f07, 0xbeb3d0d6, 0x3ea35d49, 0xbdeb4d45,
    0x3e879031, 0xbee692d3, 0x3e45fce9, 0xbdf3bfa2,
    0x3f0c88a1, 0xbe8bd72d, 0xbe9214e0, 0x3ce0e3eb,
    0x3da84610, 0x3ec6545f, 0xbe5fc667, 0x3f011330,
    0xbd9746c0, 0xbf040552, 0x3dd4b622, 0x3e9ac507,
    0x3d331941, 0xbe648c74, 0xbf789687, 0x3e8e3efa,
    0xbe8ecbd6, 0xbeca6809, 0x3edaf5d7, 0xbdf39265,
    0xbe54c85b, 0xbeb865e9, 0x3eaae871, 0xbe9cf0f5,
    0xbee637a7, 0x3e4787e9, 0xbe9bdb21, 0xbf2b2731,
    0x3cae1e0f, 0xbed6d8d9, 0x3d10bee8, 0x3e062c45,
    0xbe5edb6f, 0xbf1e4918, 0xbd9e5f22, 0x3d24b1f6,
    0xbf25aa6e, 0x3f800000, 0xbeec8738, 0xbf53fe99,
    0x3e97a7e5, 0x3d192d6e, 0x3dd50e40, 0xbe9a6333,
    0x3ddcdab9, 0x3ed56c42, 0xbf0b048c, 0x3e33316e,
    0xbdda44e0, 0x3c0c2945, 0x3e0106ce, 0xbe403d3b,
    0xbd516bf3, 0xbe227afc, 0xbdad740f, 0xbec73b93,
    0x3e9273eb, 0x3e8a7d04, 0x3e81883d, 0x3d8ad021,
    0x3f515540, 0x3e39176a, 0x3e26a106, 0x3ed7fcaa,
    0x3ec364b7, 0x3eac9ecc, 0x3f0f8a8a, 0xbf66136f,
    0xbe9273c5, 0xbecca64b, 0xbe06b9ab, 0xbdcebaec,
    0x3ea15095, 0x3e78b73b, 0x3df7d017, 0x3dc305f4,
    0x3d53ecb4, 0x3f3ed208, 0x3d7a6858, 0xbe80fd85,
    0xbe3a5759, 0xbf4db80a, 0x3f52d009, 0x3eb54232,
    0xbf0bd786, 0x3ebd8b42, 0xbeb3023a, 0xbec55475,
    0x3d55ded3, 0x3d87443b, 0x3d829c08, 0x3f11f3ee,
    0x3ee06059, 0x3d16a083, 0xbebd88b3, 0xbdc96f70
    };

static const uint32_t in_com2[256] = {
    0x3cfe077a, 0x3e595eba, 0x3e4c161e, 0x3e6d0744,
    0x3e937a96, 0x3ccd7f51, 0xbe3a6d81, 0x3d83f9a8,
    0xbe3294d1, 0x3e478802, 0x3aa015ef, 0xbdde1e60,
    0x3d3b1e81, 0xbc31c1eb, 0xbe50f1ca, 0xbcd3b88b,
    0x3e26b0c2, 0xbcd720b5, 0x3de24116, 0xbf16421c,
    0xbda499a2, 0xbee6db2c, 0x3e8f0d5e, 0x3ee859ec,
    0xbe918139, 0x3ea05e41, 0xbed4e6e4, 0x3e5c659e,
    0x3f0813d3, 0xbeb07ee1, 0xbedfaabd, 0xbea161c5,
    0xbef47968, 0x3f0508c6, 0xbec0fec2, 0xbd43f108,
    0x3ee3a8c2, 0xbe0a4e4a, 0x3e0bb108, 0x3efab12c,
    0x3df15ecc, 0xbe85ab6b, 0x3e6cddaf, 0x3ef7329f,
    0xbe17da4d, 0x3d1bdaf3, 0xbd84e307, 0xbdb8a32e,
    0x3e538fd7, 0x3f800000, 0x3d1e9776, 0xbf385d91,
    0xbe8ea2d4, 0xbe9c2022, 0xbe1a4ce7, 0x3e3d7f3e,
    0xbd81718d, 0xbe9370c0, 0xbdd49e34, 0x3ed7c2c4,
    0xbeb7a6a9, 0xbd8c69a1, 0x3dfa6ad1, 0xbccb39b3,
    0x3ea81d33, 0xbe65c6bc, 0xbeda087c, 0xbe89f898,
    0xbe1f3667, 0x3dcee806, 0xbebc476a, 0x3c7d38dd,
    0x3bb44b80, 0x3e87ea01, 0xbecf6b7b, 0xbf2d74d3,
    0xbe8329d5, 0xbe981a3e, 0xbeb72876, 0x3c5489f1,
    0x3e0b7c4d, 0x3e0ade0b, 0x3f144221, 0xbec02b78,
    0xbf0ad0a3, 0x3f07ac89, 0xbe8ceab6, 0xbd1aac64,
    0xbeddc258, 0x3f340452, 0xbf3fed35, 0x3edc1b20,
    0xbec01190, 0xbeae008c, 0x3e6f953b, 0x3dc93f7d,
    0xbeef6efb, 0x3ef28939, 0x3eb86235, 0x3f01b403,
    0x3e1afbb7, 0x3df3a5d1, 0x3e442b8b, 0x3e28ec9a,
    0xbe40810e, 0x3cee00be, 0xbeedc6ba, 0xbe8096d1,
    0xbee3bb67, 0xbe739485, 0x3ef1f859, 0x3ea3a83c,
    0x3eace68f, 0x3eccbc3c, 0x3e32b7df, 0xbe791fea,
    0x3ec77e23, 0xbe1bee43, 0x3dcea665, 0xbefcb4e8,
    0x3f2df6da, 0xbde0fe20, 0xbef3bbd4, 0xbe56e930,
    0xbe732c2b, 0xbef4167e, 0xbd9bdbd9, 0xbda3e84d,
    0x3e80f9db, 0x3e7d4614, 0xbe808a72, 0xbe6135e8,
    0xbdc23e3c, 0xbc98d8bc, 0xbf79a72c, 0x3ee5674a,
    0xbe58f030, 0x3ec4a124, 0xbccda5f0, 0xbd829431,
    0xbd237862, 0xbe6d3d31, 0x3f0e8c12, 0xbed6ee81,
    0xbdaef9ad, 0xbe342743, 0x3e91a4c5, 0x3ef55ad9,
    0xbf04709c, 0xbdea14cf, 0x3edbc277, 0x3e2a424e,
    0x3eeddec2, 0x3d8e7e10, 0x3eed0317, 0x3ec4fdab,
    0xbd32546e, 0x3ccad60e, 0xbed0729e, 0x3ebc72d1,
    0x3e85c48c, 0xbee8131f, 0xbe5da03c, 0xbef6509d,
    0xbe43e20a, 0x3dff6326, 0x3e9891ba, 0xbec1beee,
    0x3e9198b2, 0x3e399603, 0x3e21a32d, 0x3e12e3e0,
    0x3e78193e, 0xbc52fb1a, 0xbe876b41, 0xbd67f9f8,
    0x3edb05b2, 0x3e69cf83, 0xbe85747f, 0x3e44bdd4,
    0xbd7d5d80, 0x3e62878b, 0x3e732f5a, 0x3caad70e,
    0xbdb04cd6, 0xbd65cc04, 0x3e2014cb, 0x3e9f51e0,
    0x3f2444d5, 0xbecf3e57, 0xbca286ab, 0x39ea6b6e,
    0xbed97a4c, 0x3f1c6456, 0xbe6501b6, 0xbd44447d,
    0xbe56ec29, 0x3e36d6da, 0x3e8e3796, 0x3e41532b,
    0xbf2ad4c2, 0x3dcbb2ed, 0x3f0449f3, 0x3b9d2f14,
    0x3e843611, 0xbeb21d00, 0x3dae0f13, 0xbe0bfbc7,
    0x3d60fc05, 0xbe50eba1, 0xbdac28bd, 0x3ddff1a8,
    0xbca2d3ed, 0x3e3f2a75, 0x3cd1d54f, 0xbd5cbb86,
    0xbeb94344, 0x3f1da3ad, 0x3dc86288, 0x3e1bf366,
    0xbcbae72e, 0x3e14cec4, 0xbe10c0e9, 0x3d033def,
    0xbe4f8aef, 0x3ea13b44, 0xbd9d3c5d, 0x3e5ffae9,
    0xbc7c924c, 0xbe1a333e, 0x3ea85ff3, 0xbe9094f0,
    0x3ef788aa, 0x3ec897b1, 0xbe4f4021, 0x3e862a40,
    0x3f023da9, 0xbe899fb5, 0xbe53baa3, 0xbdcca4cf,
    0x3dd61a8e, 0xbe68565c, 0xbebe867f, 0x3e8c7c86,
    0x3e759429, 0xbe2d2450, 0x3d8a0dc2, 0x3eae355f,
    0x3dae17b5, 0x3e322f48, 0x3ced186e, 0x3e284f99,
    0x3c8e1745, 0x3d9b78c1, 0xbe8fb371, 0x3e8fbb37
    };

static const uint32_t ref_add[256] = {
    0xbec9d814, 0xbd44b104, 0xbe8473bb, 0x3ec28325,
    0x3e134fe4, 0xbeb0c2c2, 0xbe08e519, 0x3e7249cd,
    0x3e6c4843, 0x3e66fb8b, 0x3c34b380, 0xbcfe1c36,
    0x3ecf68a3, 0x3ec2b0c4, 0x3e94f23f, 0xbed88508,
    0x3f83fe1b, 0x3ecee148, 0xbe3538d4, 0xbeb4f653,
    0xbf516fcc, 0xbf6df81b, 0x3e822912, 0x3ef115eb,
    0xbd5343ab, 0xbf0bc690, 0x3c001ac3, 0x3f39b88a,
    0x3f2a7a4a, 0xbe90cf64, 0xbe7bacce, 0xbf099ee6,
    0x3d92691d, 0x3f95e9dc, 0xbeb49dbb, 0x3e84fc22,
    0xbe001570, 0xbebaabad, 0xbf192e2f, 0x3facfe6d,
    0x3ee1dc1c, 0xbf5f2c97, 0x3cff1e75, 0xbe7f67a0,
    0xbf4258c2, 0xbed32030, 0xbe8af337, 0x3e2d67f0,
    0x3ebed0c4, 0x3f5f6d4c, 0x3da8cede, 0xbf14d825,
    0xbdaa75f4, 0xbedc6f03, 0x3cc7f9d5, 0xbf39628a,
    0xbea7b87a, 0x3e008dec, 0xbdba0cf2, 0xbf08ae08,
    0xbf07c82b, 0xbedab86e, 0xbe3d20db, 0xbd69bbfa,
    0x3c42f730, 0xbeb9f8a8, 0xbd21ce85, 0xbd1dd75b,
    0xbe4bb43a, 0x3ebd7ebf, 0xbdfb6a59, 0xbea83329,
    0xbd939638, 0x3e22f6ef, 0xbd8ff28f, 0xbf598639,
    0xbef8afab, 0xbb930af6, 0xbf02b910, 0x3f09a780,
    0x3e55b31e, 0xbe21c56b, 0xbe134eb5, 0xbf5b5943,
    0xbf5b8aa0, 0x3fa15edc, 0xbd08a29f, 0xbe6555f6,
    0xbf622b87, 0x3f59f683, 0xbf397859, 0x3f99c492,
    0xbf2749bb, 0xbf53db21, 0x3eface61, 0xbe9e9534,
    0xbe926e06, 0x3f3af286, 0x3dc0167b, 0x3e9bdb88,
    0x3f307eb7, 0xbe361426, 0x3d98c732, 0x3eb459b4,
    0xbd2a0e1c, 0x3de1fbd3, 0xbf1c9120, 0x3e890c5a,
    0xbeed4280, 0xbb22aef7, 0x3f4263e3, 0x3ea758f8,
    0x3ed392cd, 0x3f580432, 0xbeabb8fa, 0xbf229185,
    0x3eff5c3c, 0x3d9e0e00, 0x3f3af1da, 0xbf0d4fd8,
    0x3f87b4ae, 0x3f09a1e3, 0xbd880b61, 0xbe581bde,
    0x3d6f43f1, 0xbea41c9c, 0xbea6fbcf, 0xbf0266ac,
    0x3f01a7d9, 0x3f4cd391, 0x3e320d09, 0xbd2c00ad,
    0x3e8aaf20, 0xbe08aae1, 0xbf8e99b1, 0x3e518686,
    0xbf0e1bd0, 0x3f141002, 0xbea0ea21, 0x3e070a70,
    0xbf05c929, 0xbd862e7f, 0x3f224efb, 0xbf29987f,
    0xbe2e7ac7, 0xbd8bfbe1, 0x3d0e0859, 0x3f67509a,
    0xbf2d7bff, 0xbed50c5f, 0x3f2b3c40, 0x3e4db66b,
    0x3e519f77, 0xbe903152, 0x3f483030, 0x3e8a2a5a,
    0x3e628b46, 0xbed9e572, 0xbe5ae853, 0x3e7f05d1,
    0x3f4f6ae7, 0xbf39f526, 0xbf00727f, 0xbee8425f,
    0xbddf7e05, 0x3f031694, 0x3da2ba19, 0x3e00cee2,
    0x3e578e05, 0xbeab3fa2, 0x3e85ff1f, 0x3ee436f7,
    0x3e926fc7, 0xbe71bc25, 0xbf9e2614, 0x3e627f76,
    0x3e1873b8, 0xbe2b008f, 0x3e2b02b0, 0x3d95e943,
    0xbe8a0fde, 0xbe0e4447, 0x3f12400f, 0xbe924384,
    0xbf09256e, 0x3e0e14e8, 0xbe17a176, 0xbeb6fc82,
    0x3f29b5c5, 0xbf530b98, 0x3c7dee49, 0x3e06a17b,
    0xbf247402, 0xbbf26140, 0xbe9a18a3, 0xbbfc9435,
    0xbf5b6578, 0x3f96dadb, 0xbe3c9f45, 0xbf23a9cf,
    0xbebe019f, 0x3e0c24d2, 0x3f1eebbb, 0xbe97ee77,
    0x3ebb6cbf, 0x3d8d3d0a, 0xbeea8552, 0x3d1cd69b,
    0xbd538dbc, 0xbe48290d, 0x3d2bc9bf, 0xbda088cd,
    0xbd916af5, 0x3ce57bc6, 0xbd71fd77, 0xbee2d303,
    0xbd9b3d65, 0x3f62e22e, 0x3eb3a0df, 0x3e615b76,
    0x3f4b7e06, 0x3ea6f317, 0x3caf00e7, 0x3ee86468,
    0x3e373e7f, 0x3f26ed08, 0x3ef7c5fc, 0xbf2e14b5,
    0xbe9a5858, 0xbf0cdff5, 0x3e4a063b, 0xbec443ab,
    0x3f4c6ca0, 0x3f2279a7, 0xbda6b02c, 0x3eb6ebbd,
    0x3f0f7c74, 0x3ef4045c, 0xbe15208d, 0xbeb426b8,
    0xbd9e9424, 0xbf83e6d0, 0x3ee71994, 0x3f20df5c,
    0xbe9ce4f7, 0x3e4df233, 0xbe907eca, 0xbd38f8b2,
    0x3e0c838f, 0x3e75d166, 0x3dbde223, 0x3f3c07d5,
    0x3ee941cd, 0x3de6c902, 0xbf269e12, 0x3e3abeb6
    };

static const uint32_t ref_sub[256] = {
    0xbee99903, 0xbef1f4db, 0xbf2844ed, 0xbdaa107b,
    0xbedd4d3b, 0xbeca72ac, 0x3e6bf5e9, 0x3ddca04b,
    0x3f145c79, 0xbe281479, 0x3c0cae04, 0x3e3e5ada,
    0x3ea0a102, 0x3ecdcce2, 0x3f32f204, 0xbebe0df6,
    0x3f34a3d6, 0x3ee9c55f, 0xbecbbcf5, 0x3f52090e,
    0xbf284963, 0xbce39dd3, 0xbe9bf1aa, 0xbedf9dee,
    0x3f044cfe, 0xbf961268, 0x3f56e74f, 0x3e970b76,
    0xbecb5aba, 0x3ed02e5e, 0x3f20bf89, 0x3dbe16f8,
    0x3f836346, 0x3e0708aa, 0x3ecd5fca, 0x3eb5f864,
    0xbf81d70f, 0xbdc1758d, 0xbf5f06b3, 0x3ebe975b,
    0x3e52596c, 0xbeb30257, 0xbedcebc8, 0xbf9b8643,
    0xbeecd737, 0xbefa16ed, 0xbe110368, 0x3eb3058f,
    0xbd25f893, 0xbf90495a, 0x3ba37686, 0x3f5be2fc,
    0x3ef2a82b, 0x3e37a281, 0x3ea6cc85, 0xbf8c1115,
    0xbe4dff67, 0x3f33943b, 0x3def2f76, 0xbfb03866,
    0x3e3f79f9, 0xbe94839d, 0xbedbc5d6, 0xbbf41238,
    0xbf251156, 0x3daf384f, 0x3f4feb94, 0x3f001b23,
    0x3de57129, 0x3e2c1579, 0x3f1cda1f, 0xbeb806b7,
    0xbdaa1fa8, 0xbebe588a, 0x3f3d6d2a, 0x3f01636d,
    0x3cda3fe7, 0x3f16f428, 0x3e51bd96, 0x3f030330,
    0xbd828af7, 0xbedbc0c0, 0xbfa6abf8, 0xbdd96e5b,
    0x3e685a9a, 0x3e4d929a, 0x3f04608c, 0xbe17ffc4,
    0xbc8d25f2, 0xbf0e1220, 0x3f466212, 0x3eaedc09,
    0x3dc63ea8, 0xbe176a56, 0x3cb39262, 0xbf019a79,
    0x3f2637f7, 0xbe5e5ac9, 0xbf205f65, 0xbf357a42,
    0x3ec601b6, 0xbed4dcfc, 0xbe9df9be, 0x3cb6d1a0,
    0x3eab3f4b, 0x3d55f6e8, 0x3ea26b35, 0x3f451cff,
    0x3eda344f, 0x3ef24f27, 0xbe3e51d7, 0xbe9ff77f,
    0xbe863a50, 0x3d347f5a, 0xbf2f386d, 0xbe180642,
    0xbe8fa00b, 0x3ec371c4, 0x3f074840, 0x3edeca1f,
    0xbe9908ae, 0x3f41e16b, 0x3f62ba67, 0x3e55b681,
    0x3f088a54, 0x3f22082f, 0xbe321bc5, 0xbeb2d931,
    0x3b2dfd82, 0x3e9c610f, 0x3f2d0db4, 0x3ecbb5d3,
    0x3eebce3e, 0xbdc4e963, 0x3f561af5, 0xbf3105a8,
    0xbe068ede, 0xbe42448c, 0xbe873563, 0x3e84cf50,
    0xbee2b439, 0x3ecbb191, 0xbef59250, 0x3e355808,
    0x39fdcdab, 0x3e91284b, 0xbf08c440, 0xbd60a3e4,
    0x3eb6ca71, 0xbe4003f0, 0xbe4218d9, 0xbe06ce31,
    0xbf3976e4, 0xbed7705b, 0xbe134b9c, 0xbeffd0fc,
    0x3e9ddabf, 0xbef34034, 0x3f19b889, 0xbef962ba,
    0x3e934cb6, 0x3e3877e3, 0xbd8d130a, 0x3f022f6e,
    0x3e8c0289, 0x3e867b95, 0xbf043a77, 0x3f61f2a6,
    0xbeb76a62, 0xbf326ad2, 0xbd5d2070, 0x3e22a62f,
    0xbe4b52ed, 0xbe575cc2, 0xbf34e0e7, 0x3eab3e39,
    0xbf34e8c4, 0xbf1fa7e5, 0x3f30352b, 0xbe9f4383,
    0xbe1570fc, 0xbf14d4d7, 0x3dc5430f, 0xbea79e66,
    0xbeba2472, 0x3e807d75, 0xbeebe586, 0xbf7ad021,
    0xbf1ed3e4, 0xbc735036, 0x3d62023e, 0x3e05b70f,
    0x3e541929, 0xbf9d56b7, 0x3e15d225, 0x3db47b39,
    0xbedfdec7, 0x3f524a4a, 0xbf3d5f67, 0xbf8229b2,
    0x3f76a8b4, 0xbd7e386b, 0xbed35056, 0xbe9cd7ef,
    0xbe19fec6, 0x3f43c4a1, 0xbf20c66e, 0x3e9f969b,
    0xbe256171, 0x3e59ae35, 0x3e571b2d, 0xbe981b07,
    0xbd0001fc, 0xbeb0d2b8, 0xbde1e963, 0xbeaba422,
    0x3f25db97, 0xbeb0ca56, 0x3e1edf36, 0xbdad16ab,
    0x3f572c79, 0x3d112297, 0x3e9bb0f8, 0x3ec794ec,
    0x3f159517, 0x3cb6387a, 0x3f233215, 0xbf8f0915,
    0xbe8a8f33, 0xbe7f1959, 0xbeebbcc8, 0x3e39cc6a,
    0xbe2c702b, 0xbe187827, 0x3ea59417, 0xbe2ad186,
    0xbee9fdbb, 0x3f81d0f1, 0x3e892a5d, 0xbe1ba8a2,
    0xbe92b250, 0xbf13a272, 0x3f9909a4, 0x3da316af,
    0xbf493c90, 0x3f0a0eb5, 0xbed585aa, 0xbf39c4ea,
    0xbd065097, 0xbddd1a55, 0x3d0eabd9, 0x3ecfc010,
    0x3ed77ee4, 0xbd2050ff, 0xbdb75507, 0xbec21713
    };

static const uint32_t ref_mult[256] = {
    0xbc580b77, 0xbd625270, 0xbdbaf14c, 0x3d0cbb69,
    0xbd2a1d39, 0xbc183330, 0xbc10492e, 0x3c35c6a4,
    0xbd90b371, 0x3bc41c2a, 0x3748f87b, 0xbc099a0b,
    0x3c868173, 0xbb8b0b1f, 0xbdced667, 0x3c28201f,
    0x3e10c163, 0xbc392621, 0xbd0212de, 0xbe0c5807,
    0x3d72dd51, 0x3e5d02ba, 0xbbe68658, 0x3bfdae08,
    0xbd87624a, 0xbe89ca8a, 0xbe346387, 0x3de0e936,
    0x3d9248c7, 0xbcaec2d4, 0xbdaaf26c, 0x3d8f8db9,
    0xbe863607, 0x3ead5a4d, 0xbc155175, 0xbc7110cb,
    0xbe81b438, 0x3cfdf586, 0xbdcd48df, 0x3ed8111e,
    0x3d1c0ef2, 0x3e2343a5, 0xbd3da7db, 0xbeb5013b,
    0x3db98688, 0xbc8c656b, 0x3c5b879f, 0xbcbfa6b9,
    0x3d0c8c24, 0xbe024acf, 0x3addcf96, 0xbdcca706,
    0xbd5eea51, 0x3d1ce08e, 0xbcd82352, 0xbe2c4b2d,
    0x3c88e2e3, 0xbdf3df79, 0xbab085af, 0xbece1e82,
    0x3d7c4518, 0x3cc96c5d, 0xbd19bdb3, 0x3a51c4eb,
    0xbdd4cc24, 0x3cff34e9, 0xbe28788c, 0xbd7ee74e,
    0x3bdd5cd1, 0x3cdeb25c, 0xbdb87dd2, 0xbbae33b7,
    0xb9dfc195, 0xbce7305c, 0xbe0ae69a, 0x3deedeef,
    0x3d70dac3, 0xbdb2036d, 0x3d600c23, 0x3bdf0e1e,
    0x3c21bf31, 0xbd2314df, 0xbed660d6, 0x3e390f27,
    0x3e2f1833, 0x3ec64847, 0xbd88558f, 0x3be6665c,
    0x3e47bd6e, 0x3dd57775, 0xbc9ae57b, 0x3ea9cb21,
    0x3dd5d666, 0x3e29ba0b, 0x3d7539c6, 0xbd2437aa,
    0xbdadf86b, 0x3df8e670, 0xbdc46db6, 0xbdd1da6f,
    0x3da6c9a1, 0xbd109e96, 0xbcb792e9, 0x3cfd176d,
    0xbce19385, 0x3b1ac76e, 0x3d8bfc75, 0xbe056e15,
    0x3c079c49, 0xbd655820, 0x3e0ac3b2, 0x3b16fd29,
    0x3cd0f471, 0x3e35c7d1, 0xbdb64410, 0x3dc33011,
    0x3d2e24b1, 0xbd0f1d2e, 0x3d820e19, 0x3cec420d,
    0x3e8470b2, 0xbd91adfd, 0xbe47ac76, 0x3980ba83,
    0xbd8fe749, 0xbd988263, 0x3c9be1bf, 0x3d0cbefe,
    0x3d835441, 0x3e0c0043, 0xbdda7c49, 0xbd204b9a,
    0xbd0e1305, 0x3b0c61ce, 0x3e0aaa60, 0xbddf6208,
    0x3d94ee7f, 0x3d98d787, 0x3bede130, 0xbc4c5dc8,
    0x3c9dcfad, 0xbd1dadcc, 0x3d300ed8, 0x3dd0a6b1,
    0x3bedd5c4, 0xbc9b0be6, 0xbd918499, 0x3e503d71,
    0x3da9df6b, 0x3d0d4c1d, 0x3dd2ade3, 0x3bbca250,
    0xbdf74562, 0xbcc82cc6, 0x3e173f55, 0xbd351051,
    0xbc3cddef, 0xbc36b0a6, 0xbda13622, 0xbd336e0e,
    0x3e12ddc2, 0x3dfd8ae6, 0x3d7ceeea, 0xbc5861d5,
    0xbc80c1f3, 0x3d45dada, 0xbd855d2f, 0xbe435f76,
    0xbcac129d, 0xbdbf6a69, 0x3c864e20, 0x3d319c44,
    0x3c2d921f, 0x3b3c5b64, 0x3e837f88, 0xbc80e5b9,
    0xbdf4571b, 0xbdb8dcc2, 0xbde44ab9, 0xbcbb30b2,
    0x3c5297b9, 0xbda32b99, 0x3da25a40, 0xbbd177b3,
    0x3d1e8b5c, 0xbc331b97, 0xbd42eb3a, 0xbe550829,
    0x3c5f7424, 0x3e2deda9, 0xba37c9e7, 0x3875b98a,
    0x3dbd5278, 0xbec16529, 0x3c8dac28, 0xbafc889f,
    0x3e0b154b, 0x3e36d6da, 0xbe03665c, 0xbe2017d1,
    0xbe4a6710, 0x3b73c42b, 0x3d5c31c9, 0xbabd9675,
    0x3ce41ed9, 0xbe147d73, 0xbd3d0a8d, 0xbcc3f828,
    0xbbbfd324, 0xbae4c515, 0xbc2d8a36, 0xbca82acd,
    0x3a8533ad, 0xbcf2a969, 0xbb0e2c47, 0x3cabc922,
    0xbdd3f880, 0x3e2a8e6c, 0x3ccac896, 0x3c291ffd,
    0xbc98d4fa, 0x3cd72e10, 0xbcbc7048, 0x3c5d7518,
    0xbd9e687b, 0x3dd96fa9, 0xbd30539e, 0xbe494c6f,
    0x3b907da8, 0x3d768a00, 0xbd3138ae, 0x3ce982d6,
    0x3e1bfade, 0x3dc2e286, 0xbcc89f57, 0x3ccc6a9a,
    0x3cd7a27d, 0xbe4d2ae3, 0xbc4f1a90, 0x3cce3a20,
    0xbc9bd858, 0x3e3ab42f, 0xbe9ce528, 0x3dc6f0bc,
    0xbe062632, 0xbd8031ff, 0xbcc111a4, 0xbe06488c,
    0x3b917142, 0x3c3c4cda, 0x3af1edd3, 0x3dbfeaec,
    0x3bf913ad, 0x3b36f478, 0x3dd4c86d, 0xbce2311e
    };

static const uint32_t ref_negate[256] = {
    0x3ed9b88c, 0x3e85457e, 0x3eea7eca, 0xbe17ff06,
    0x3e13a549, 0x3ebd9ab7, 0xbd4621a0, 0xbe304cf9,
    0xbecf6e8a, 0xbcfb9c49, 0xbc20b0c2, 0xbd9e9753,
    0xbeb804d3, 0xbec83ed3, 0xbefd6b24, 0x3ecb497f,
    0xbf5e5006, 0xbedc5354, 0x3e932caf, 0xbe6f1bca,
    0x3f3cdc98, 0x3ef5150a, 0x3cce44bf, 0xbc8bbfeb,
    0xbe6e3187, 0x3f5bf5b0, 0xbed8e7ba, 0xbf029f23,
    0xbe0999d9, 0xbd7d7bec, 0xbe43a8ac, 0x3e63b80e,
    0xbf0c89d7, 0xbf26caf1, 0xbcc61078, 0xbe9d7a43,
    0x3f11d9bd, 0x3e6b0910, 0x3f3c1a71, 0xbf5ca444,
    0xbea58469, 0x3f1c56e1, 0x3e4cf9e1, 0x3f3b7337,
    0x3f1c622f, 0x3ee69b8f, 0x3e5374ec, 0xbe84dcc3,
    0xbe2a11b2, 0x3e024acf, 0xbd330647, 0xbe0e15ae,
    0xbe480aae, 0x3e009dc2, 0xbe334c22, 0x3f68c25a,
    0x3e875c17, 0xbed3b7b6, 0xbc548a11, 0x3f748f6a,
    0x3e2fd359, 0x3eb79e06, 0x3e9d2b22, 0x3d041f20,
    0x3ea20579, 0x3e0e2a95, 0xbec5ceab, 0xbe6c7b5a,
    0x3d31f74a, 0xbe89c4be, 0xbe7ad9a8, 0x3eb01cf0,
    0x3d9edaf0, 0x3dd9ba24, 0xbeab6ed8, 0x3e304596,
    0x3e6b0bad, 0xbe95ce13, 0x3e1c9356, 0xbf065558,
    0xbd946da2, 0x3e9651bb, 0x3f3915ce, 0x3ef6870f,
    0x3ea173fa, 0xbf3b112f, 0xbe77acc4, 0x3e3eaadd,
    0x3ee694b7, 0xbe17c8c6, 0xbcce9b87, 0xbf457b95,
    0x3e8e81e6, 0x3ef9b5b7, 0xbe8303c4, 0x3ed0e513,
    0xbe3a01e8, 0xbe835bd4, 0x3e885c96, 0x3e4f18fd,
    0xbf09bfc9, 0x3e97f387, 0x3def8fe3, 0xbe3fc6ce,
    0xbe15fd87, 0xbda67ba3, 0x3e16b70b, 0xbf04d196,
    0x3c98718e, 0xbe7109c9, 0xbe92cf6d, 0xbbec2f09,
    0xbd9ab0f9, 0xbee34c27, 0x3f028a75, 0x3ec89316,
    0xbddf7863, 0xbe6af544, 0xbf211d0d, 0x3d6f5644,
    0xbec2e505, 0xbf25c1a7, 0xbed1b8fb, 0x3a995722,
    0xbe977e94, 0xbe1ff3c3, 0x3e8004d9, 0x3edbd344,
    0xbe8255d6, 0xbf0d820c, 0xbed990f7, 0xbe3635bd,
    0xbebb3eaf, 0x3deb1f92, 0x3e0e30dc, 0x3e79480d,
    0x3eafbf87, 0xbe46fdbd, 0x3e940fc2, 0xbe485488,
    0x3ef72346, 0xbe2a25f2, 0xbd9e174c, 0x3e7884fa,
    0x3dadfbe0, 0xbddc52a5, 0x3e7fc774, 0xbed9465c,
    0x3e242d8e, 0x3e9a872c, 0xbe756c14, 0xbd0dd074,
    0x3e850f07, 0x3eb3d0d6, 0xbea35d49, 0x3deb4d45,
    0xbe879031, 0x3ee692d3, 0xbe45fce9, 0x3df3bfa2,
    0xbf0c88a1, 0x3e8bd72d, 0x3e9214e0, 0xbce0e3eb,
    0xbda84610, 0xbec6545f, 0x3e5fc667, 0xbf011330,
    0x3d9746c0, 0x3f040552, 0xbdd4b622, 0xbe9ac507,
    0xbd331941, 0x3e648c74, 0x3f789687, 0xbe8e3efa,
    0x3e8ecbd6, 0x3eca6809, 0xbedaf5d7, 0x3df39265,
    0x3e54c85b, 0x3eb865e9, 0xbeaae871, 0x3e9cf0f5,
    0x3ee637a7, 0xbe4787e9, 0x3e9bdb21, 0x3f2b2731,
    0xbcae1e0f, 0x3ed6d8d9, 0xbd10bee8, 0xbe062c45,
    0x3e5edb6f, 0x3f1e4918, 0x3d9e5f22, 0xbd24b1f6,
    0x3f25aa6e, 0xbf800000, 0x3eec8738, 0x3f53fe99,
    0xbe97a7e5, 0xbd192d6e, 0xbdd50e40, 0x3e9a6333,
    0xbddcdab9, 0xbed56c42, 0x3f0b048c, 0xbe33316e,
    0x3dda44e0, 0xbc0c2945, 0xbe0106ce, 0x3e403d3b,
    0x3d516bf3, 0x3e227afc, 0x3dad740f, 0x3ec73b93,
    0xbe9273eb, 0xbe8a7d04, 0xbe81883d, 0xbd8ad021,
    0xbf515540, 0xbe39176a, 0xbe26a106, 0xbed7fcaa,
    0xbec364b7, 0xbeac9ecc, 0xbf0f8a8a, 0x3f66136f,
    0x3e9273c5, 0x3ecca64b, 0x3e06b9ab, 0x3dcebaec,
    0xbea15095, 0xbe78b73b, 0xbdf7d017, 0xbdc305f4,
    0xbd53ecb4, 0xbf3ed208, 0xbd7a6858, 0x3e80fd85,
    0x3e3a5759, 0x3f4db80a, 0xbf52d009, 0xbeb54232,
    0x3f0bd786, 0xbebd8b42, 0x3eb3023a, 0x3ec55475,
    0xbd55ded3, 0xbd87443b, 0xbd829c08, 0xbf11f3ee,
    0xbee06059, 0xbd16a083, 0x3ebd88b3, 0x3dc96f70
    };

static const uint32_t ref_offset[256] = {
    0x3d991dd1, 0x3e757505, 0x3d2c09ae, 0x3f25ffc2,
    0x3eb62d5b, 0x3e04ca91, 0x3f0c621a, 0x3f2c133e,
    0x3f67b745, 0x3f07dce2, 0x3f0282c3, 0x3f13d2ea,
    0x3f5c0269, 0x3f641f69, 0x3f7eb592, 0x3dd2da03,
    0x3faf2803, 0x3f6e29aa, 0x3e59a6a1, 0x3f3bc6f2,
    0xbe73725f, 0x3caeaf66, 0x3ef31bb4, 0x3f045dff,
    0x3f3b8c62, 0xbeb7eb60, 0x3f6c73dd, 0x3f814f91,
    0x3f226676, 0x3f0fd7bf, 0x3f30ea2b, 0x3e8e23f9,
    0x3f8644ec, 0x3f936578, 0x3f063084, 0x3f4ebd21,
    0xbd8ecde8, 0x3e8a7b78, 0xbe7069c6, 0x3fae5222,
    0x3f52c235, 0xbde2b709, 0x3e998310, 0xbe6dccde,
    0xbde31175, 0x3d4b238b, 0x3e96458a, 0x3f426e62,
    0x3f2a846c, 0x3ebeda98, 0x3f0b3064, 0x3f23856b,
    0x3f3202ab, 0x3ebfb11f, 0x3f2cd308, 0xbed184b3,
    0x3e7147d2, 0x3f69dbdb, 0x3f035228, 0xbee91ed4,
    0x3ea81653, 0x3e10c3f5, 0x3e45a9bd, 0x3eef7c1c,
    0x3e3bf50e, 0x3eb8eab6, 0x3f62e756, 0x3f3b1ed6,
    0x3ee9c117, 0x3f44e25f, 0x3f3eb66a, 0x3e1fc620,
    0x3ed84944, 0x3ec99177, 0x3f55b76c, 0x3ea7dd35,
    0x3e8a7a2a, 0x3f4ae709, 0x3eb1b655, 0x3f832aac,
    0x3f128db4, 0x3e535c8b, 0xbe645739, 0x3c978f12,
    0x3e3d180d, 0x3f9d8898, 0x3f3deb31, 0x3ea0aa91,
    0x3d4b5a49, 0x3f25f231, 0x3f0674dc, 0x3fa2bdca,
    0x3e62fc34, 0x3c494924, 0x3f4181e2, 0x3dbc6bb4,
    0x3f2e807a, 0x3f41adea, 0x3e6f46d4, 0x3e987382,
    0x3f84dfe4, 0x3e5018f1, 0x3ec41c07, 0x3f2ff1b4,
    0x3f257f62, 0x3f14cf74, 0x3eb4a47a, 0x3f8268cb,
    0x3ef678e7, 0x3f3c4272, 0x3f4967b7, 0x3f01d85e,
    0x3f13561f, 0x3f71a614, 0xbc229d35, 0x3dddb3a8,
    0x3f1bef0c, 0x3f3abd51, 0x3f908e86, 0x3ee21537,
    0x3f617283, 0x3f92e0d4, 0x3f68dc7e, 0x3eff66a9,
    0x3f4bbf4a, 0x3f27fcf1, 0x3e7ff64f, 0x3d90b2f1,
    0x3f412aeb, 0x3f86c106, 0x3f6cc87b, 0x3f2d8d6f,
    0x3f5d9f58, 0x3ec5381b, 0x3eb8e792, 0x3e835bf9,
    0x3e2080f2, 0x3f31bf6f, 0x3e57e07b, 0x3f321522,
    0x3c8dcba5, 0x3f2a897c, 0x3f13c2ea, 0x3e83bd83,
    0x3ed48108, 0x3f1b8a55, 0x3e801c46, 0x3f6ca32e,
    0x3eade939, 0x3e4af1a9, 0x3f3d5b05, 0x3f08dd07,
    0x3e75e1f3, 0x3e185e53, 0x3f51aea5, 0x3ec52caf,
    0x3f43c818, 0x3d4b696a, 0x3f317f3a, 0x3ec31017,
    0x3f864450, 0x3e6851a5, 0x3e5bd63f, 0x3f07071f,
    0x3f1508c2, 0x3f632a2f, 0x3e901ccc, 0x3f808998,
    0x3eda2e50, 0xbc80aa33, 0x3f1a96c4, 0x3f4d6284,
    0x3f0b3194, 0x3e8db9c6, 0xbef12d0f, 0x3f471f7d,
    0x3e626854, 0x3dd65fdb, 0x3f6d7aec, 0x3ec31b67,
    0x3e959bd2, 0x3e0f342e, 0x3f557438, 0x3e461e16,
    0x3d4e42c5, 0x3f31e1fa, 0x3e4849bf, 0xbe2c9cc3,
    0x3f0570f0, 0x3da49c9d, 0x3f090bee, 0x3f218b11,
    0x3e909248, 0xbdf248c1, 0x3ed86838, 0x3f0a4b1f,
    0xbe16a9b8, 0x3fc00000, 0x3d1bc641, 0xbea7fd33,
    0x3f4bd3f2, 0x3f0992d7, 0x3f1aa1c8, 0x3e4b399a,
    0x3f1b9b57, 0x3f6ab621, 0xbd3048ba, 0x3f2ccc5c,
    0x3ec96ec8, 0x3f0230a5, 0x3f2041b4, 0x3e9fe163,
    0x3ee5d282, 0x3eaec282, 0x3ed4a2fc, 0x3de311b6,
    0x3f4939f5, 0x3f453e82, 0x3f40c41f, 0x3f115a04,
    0x3fa8aaa0, 0x3f2e45da, 0x3f29a841, 0x3f6bfe55,
    0x3f61b25b, 0x3f564f66, 0x3f87c545, 0xbecc26df,
    0x3e5b1875, 0x3dcd66d2, 0x3ebca32b, 0x3ecc5145,
    0x3f50a84a, 0x3f3e2dcf, 0x3f1efa03, 0x3f1860be,
    0x3f0d3ecb, 0x3f9f6904, 0x3f0fa685, 0x3e7e04f7,
    0x3ea2d454, 0xbe9b7013, 0x3fa96805, 0x3f5aa119,
    0xbd3d785c, 0x3f5ec5a1, 0x3e19fb8c, 0x3deaae2a,
    0x3f0d5ded, 0x3f10e887, 0x3f105381, 0x3f88f9f7,
    0x3f70302c, 0x3f096a08, 0x3e04ee9a, 0x3ecda424
    };

static const uint32_t ref_scale[256] = {
    0xbe59b88c, 0xbe05457e, 0xbe6a7eca, 0x3d97ff06,
    0xbd93a549, 0xbe3d9ab7, 0x3cc621a0, 0x3db04cf9,
    0x3e4f6e8a, 0x3c7b9c49, 0x3ba0b0c2, 0x3d1e9753,
    0x3e3804d3, 0x3e483ed3, 0x3e7d6b24, 0xbe4b497f,
    0x3ede5006, 0x3e5c5354, 0xbe132caf, 0x3def1bca,
    0xbebcdc98, 0xbe75150a, 0xbc4e44bf, 0x3c0bbfeb,
    0x3dee3187, 0xbedbf5b0, 0x3e58e7ba, 0x3e829f23,
    0x3d8999d9, 0x3cfd7bec, 0x3dc3a8ac, 0xbde3b80e,
    0x3e8c89d7, 0x3ea6caf1, 0x3c461078, 0x3e1d7a43,
    0xbe91d9bd, 0xbdeb0910, 0xbebc1a71, 0x3edca444,
    0x3e258469, 0xbe9c56e1, 0xbdccf9e1, 0xbebb7337,
    0xbe9c622f, 0xbe669b8f, 0xbdd374ec, 0x3e04dcc3,
    0x3daa11b2, 0xbd824acf, 0x3cb30647, 0x3d8e15ae,
    0x3dc80aae, 0xbd809dc2, 0x3db34c22, 0xbee8c25a,
    0xbe075c17, 0x3e53b7b6, 0x3bd48a11, 0xbef48f6a,
    0xbdafd359, 0xbe379e06, 0xbe1d2b22, 0xbc841f20,
    0xbe220579, 0xbd8e2a95, 0x3e45ceab, 0x3dec7b5a,
    0xbcb1f74a, 0x3e09c4be, 0x3dfad9a8, 0xbe301cf0,
    0xbd1edaf0, 0xbd59ba24, 0x3e2b6ed8, 0xbdb04596,
    0xbdeb0bad, 0x3e15ce13, 0xbd9c9356, 0x3e865558,
    0x3d146da2, 0xbe1651bb, 0xbeb915ce, 0xbe76870f,
    0xbe2173fa, 0x3ebb112f, 0x3df7acc4, 0xbdbeaadd,
    0xbe6694b7, 0x3d97c8c6, 0x3c4e9b87, 0x3ec57b95,
    0xbe0e81e6, 0xbe79b5b7, 0x3e0303c4, 0xbe50e513,
    0x3dba01e8, 0x3e035bd4, 0xbe085c96, 0xbdcf18fd,
    0x3e89bfc9, 0xbe17f387, 0xbd6f8fe3, 0x3dbfc6ce,
    0x3d95fd87, 0x3d267ba3, 0xbd96b70b, 0x3e84d196,
    0xbc18718e, 0x3df109c9, 0x3e12cf6d, 0x3b6c2f09,
    0x3d1ab0f9, 0x3e634c27, 0xbe828a75, 0xbe489316,
    0x3d5f7863, 0x3deaf544, 0x3ea11d0d, 0xbcef5644,
    0x3e42e505, 0x3ea5c1a7, 0x3e51b8fb, 0xba195722,
    0x3e177e94, 0x3d9ff3c3, 0xbe0004d9, 0xbe5bd344,
    0x3e0255d6, 0x3e8d820c, 0x3e5990f7, 0x3db635bd,
    0x3e3b3eaf, 0xbd6b1f92, 0xbd8e30dc, 0xbdf9480d,
    0xbe2fbf87, 0x3dc6fdbd, 0xbe140fc2, 0x3dc85488,
    0xbe772346, 0x3daa25f2, 0x3d1e174c, 0xbdf884fa,
    0xbd2dfbe0, 0x3d5c52a5, 0xbdffc774, 0x3e59465c,
    0xbda42d8e, 0xbe1a872c, 0x3df56c14, 0x3c8dd074,
    0xbe050f07, 0xbe33d0d6, 0x3e235d49, 0xbd6b4d45,
    0x3e079031, 0xbe6692d3, 0x3dc5fce9, 0xbd73bfa2,
    0x3e8c88a1, 0xbe0bd72d, 0xbe1214e0, 0x3c60e3eb,
    0x3d284610, 0x3e46545f, 0xbddfc667, 0x3e811330,
    0xbd1746c0, 0xbe840552, 0x3d54b622, 0x3e1ac507,
    0x3cb31941, 0xbde48c74, 0xbef89687, 0x3e0e3efa,
    0xbe0ecbd6, 0xbe4a6809, 0x3e5af5d7, 0xbd739265,
    0xbdd4c85b, 0xbe3865e9, 0x3e2ae871, 0xbe1cf0f5,
    0xbe6637a7, 0x3dc787e9, 0xbe1bdb21, 0xbeab2731,
    0x3c2e1e0f, 0xbe56d8d9, 0x3c90bee8, 0x3d862c45,
    0xbddedb6f, 0xbe9e4918, 0xbd1e5f22, 0x3ca4b1f6,
    0xbea5aa6e, 0x3f000000, 0xbe6c8738, 0xbed3fe99,
    0x3e17a7e5, 0x3c992d6e, 0x3d550e40, 0xbe1a6333,
    0x3d5cdab9, 0x3e556c42, 0xbe8b048c, 0x3db3316e,
    0xbd5a44e0, 0x3b8c2945, 0x3d8106ce, 0xbdc03d3b,
    0xbcd16bf3, 0xbda27afc, 0xbd2d740f, 0xbe473b93,
    0x3e1273eb, 0x3e0a7d04, 0x3e01883d, 0x3d0ad021,
    0x3ed15540, 0x3db9176a, 0x3da6a106, 0x3e57fcaa,
    0x3e4364b7, 0x3e2c9ecc, 0x3e8f8a8a, 0xbee6136f,
    0xbe1273c5, 0xbe4ca64b, 0xbd86b9ab, 0xbd4ebaec,
    0x3e215095, 0x3df8b73b, 0x3d77d017, 0x3d4305f4,
    0x3cd3ecb4, 0x3ebed208, 0x3cfa6858, 0xbe00fd85,
    0xbdba5759, 0xbecdb80a, 0x3ed2d009, 0x3e354232,
    0xbe8bd786, 0x3e3d8b42, 0xbe33023a, 0xbe455475,
    0x3cd5ded3, 0x3d07443b, 0x3d029c08, 0x3e91f3ee,
    0x3e606059, 0x3c96a083, 0xbe3d88b3, 0xbd496f70
    };

static const uint32_t ref_dot_prod_3[1] = {
    0xbe238df9
    };

static const uint32_t ref_dot_prod_4[1] = {
    0xbe3211c9
    };

static const uint32_t ref_dot_prod_4n1[1] = {
    0xbe74477d
    };

static const uint32_t ref_abs[256] = {
    0x3ed9b88c, 0x3e85457e, 0x3eea7eca, 0x3e17ff06,
    0x3e13a549, 0x3ebd9ab7, 0x3d4621a0, 0x3e304cf9,
    0x3ecf6e8a, 0x3cfb9c49, 0x3c20b0c2, 0x3d9e9753,
    0x3eb804d3, 0x3ec83ed3, 0x3efd6b24, 0x3ecb497f,
    0x3f5e5006, 0x3edc5354, 0x3e932caf, 0x3e6f1bca,
    0x3f3cdc98, 0x3ef5150a, 0x3cce44bf, 0x3c8bbfeb,
    0x3e6e3187, 0x3f5bf5b0, 0x3ed8e7ba, 0x3f029f23,
    0x3e0999d9, 0x3d7d7bec, 0x3e43a8ac, 0x3e63b80e,
    0x3f0c89d7, 0x3f26caf1, 0x3cc61078, 0x3e9d7a43,
    0x3f11d9bd, 0x3e6b0910, 0x3f3c1a71, 0x3f5ca444,
    0x3ea58469, 0x3f1c56e1, 0x3e4cf9e1, 0x3f3b7337,
    0x3f1c622f, 0x3ee69b8f, 0x3e5374ec, 0x3e84dcc3,
    0x3e2a11b2, 0x3e024acf, 0x3d330647, 0x3e0e15ae,
    0x3e480aae, 0x3e009dc2, 0x3e334c22, 0x3f68c25a,
    0x3e875c17, 0x3ed3b7b6, 0x3c548a11, 0x3f748f6a,
    0x3e2fd359, 0x3eb79e06, 0x3e9d2b22, 0x3d041f20,
    0x3ea20579, 0x3e0e2a95, 0x3ec5ceab, 0x3e6c7b5a,
    0x3d31f74a, 0x3e89c4be, 0x3e7ad9a8, 0x3eb01cf0,
    0x3d9edaf0, 0x3dd9ba24, 0x3eab6ed8, 0x3e304596,
    0x3e6b0bad, 0x3e95ce13, 0x3e1c9356, 0x3f065558,
    0x3d946da2, 0x3e9651bb, 0x3f3915ce, 0x3ef6870f,
    0x3ea173fa, 0x3f3b112f, 0x3e77acc4, 0x3e3eaadd,
    0x3ee694b7, 0x3e17c8c6, 0x3cce9b87, 0x3f457b95,
    0x3e8e81e6, 0x3ef9b5b7, 0x3e8303c4, 0x3ed0e513,
    0x3e3a01e8, 0x3e835bd4, 0x3e885c96, 0x3e4f18fd,
    0x3f09bfc9, 0x3e97f387, 0x3def8fe3, 0x3e3fc6ce,
    0x3e15fd87, 0x3da67ba3, 0x3e16b70b, 0x3f04d196,
    0x3c98718e, 0x3e7109c9, 0x3e92cf6d, 0x3bec2f09,
    0x3d9ab0f9, 0x3ee34c27, 0x3f028a75, 0x3ec89316,
    0x3ddf7863, 0x3e6af544, 0x3f211d0d, 0x3d6f5644,
    0x3ec2e505, 0x3f25c1a7, 0x3ed1b8fb, 0x3a995722,
    0x3e977e94, 0x3e1ff3c3, 0x3e8004d9, 0x3edbd344,
    0x3e8255d6, 0x3f0d820c, 0x3ed990f7, 0x3e3635bd,
    0x3ebb3eaf, 0x3deb1f92, 0x3e0e30dc, 0x3e79480d,
    0x3eafbf87, 0x3e46fdbd, 0x3e940fc2, 0x3e485488,
    0x3ef72346, 0x3e2a25f2, 0x3d9e174c, 0x3e7884fa,
    0x3dadfbe0, 0x3ddc52a5, 0x3e7fc774, 0x3ed9465c,
    0x3e242d8e, 0x3e9a872c, 0x3e756c14, 0x3d0dd074,
    0x3e850f07, 0x3eb3d0d6, 0x3ea35d49, 0x3deb4d45,
    0x3e879031, 0x3ee692d3, 0x3e45fce9, 0x3df3bfa2,
    0x3f0c88a1, 0x3e8bd72d, 0x3e9214e0, 0x3ce0e3eb,
    0x3da84610, 0x3ec6545f, 0x3e5fc667, 0x3f011330,
    0x3d9746c0, 0x3f040552, 0x3dd4b622, 0x3e9ac507,
    0x3d331941, 0x3e648c74, 0x3f789687, 0x3e8e3efa,
    0x3e8ecbd6, 0x3eca6809, 0x3edaf5d7, 0x3df39265,
    0x3e54c85b, 0x3eb865e9, 0x3eaae871, 0x3e9cf0f5,
    0x3ee637a7, 0x3e4787e9, 0x3e9bdb21, 0x3f2b2731,
    0x3cae1e0f, 0x3ed6d8d9, 0x3d10bee8, 0x3e062c45,
    0x3e5edb6f, 0x3f1e4918, 0x3d9e5f22, 0x3d24b1f6,
    0x3f25aa6e, 0x3f800000, 0x3eec8738, 0x3f53fe99,
    0x3e97a7e5, 0x3d192d6e, 0x3dd50e40, 0x3e9a6333,
    0x3ddcdab9, 0x3ed56c42, 0x3f0b048c, 0x3e33316e,
    0x3dda44e0, 0x3c0c2945, 0x3e0106ce, 0x3e403d3b,
    0x3d516bf3, 0x3e227afc, 0x3dad740f, 0x3ec73b93,
    0x3e9273eb, 0x3e8a7d04, 0x3e81883d, 0x3d8ad021,
    0x3f515540, 0x3e39176a, 0x3e26a106, 0x3ed7fcaa,
    0x3ec364b7, 0x3eac9ecc, 0x3f0f8a8a, 0x3f66136f,
    0x3e9273c5, 0x3ecca64b, 0x3e06b9ab, 0x3dcebaec,
    0x3ea15095, 0x3e78b73b, 0x3df7d017, 0x3dc305f4,
    0x3d53ecb4, 0x3f3ed208, 0x3d7a6858, 0x3e80fd85,
    0x3e3a5759, 0x3f4db80a, 0x3f52d009, 0x3eb54232,
    0x3f0bd786, 0x3ebd8b42, 0x3eb3023a, 0x3ec55475,
    0x3d55ded3, 0x3d87443b, 0x3d829c08, 0x3f11f3ee,
    0x3ee06059, 0x3d16a083, 0x3ebd88b3, 0x3dc96f70
    };

